package com.yidian.sms.consumer;

import com.alibaba.fastjson.JSON;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;

import java.util.Map;

/**
 * @author whb
 * @create 2021-07-09 15:30
 * @desciption 消息消费者（从rabbitmq的队列中接收由生产者发送的短信验证码消息）
 */
public class SmsMessageConsumer implements MessageListener {
    @Autowired
    private SmsUtil smsUtil;
    @Value("${smsCode}")
    private String smsCode;
    @Value("${param}")
    private String param;

    @Override
    public void onMessage(Message message) {
        String jsonString=new String(message.getBody());//获取rabbitmq队列中的消息
        Map<String,String> map = JSON.parseObject(jsonString, Map.class);//将json字符串转化为对应的数据类型（此处为Map集合）
        String phoneNo = map.get("phoneNo");//从Map集合中获取手机号码
        String code = map.get("code");//从Map集合中获取将要发送的短信验证码
        System.out.println("手机号码："+phoneNo+" 短信验证码："+code);

        //调用阿里云短信服务，将验证码以短信形式发送到对应号码的手机上
        //smsUtil.sendSms(phoneNo,smsCode,param.replace("[value]",code));
    }
}
